package com.blue.jdbc;

import java.util.List;

public interface IPageable<T>
{

	/**
	 * 查询对象的记录数
	 * 
	 * @param param 查询参数
	 * @return 记录数
	 */
	public abstract int getRows(T param);

	/**
	 * 列出在数据库中的对象，必须分页
	 * 
	 * @param entity 查询参数，若为 null，则查询所有记录
	 * @param start 起始行号，0开始
	 * @param size 最多记录数，不能小于1
	 * @return
	 */
	public abstract List<T> list(T param, int start, int size);

	/**
	 * 列出在数据库中的对象，必须分页
	 * 
	 * @param entity 查询参数
	 * @param page 数据库分页对象
	 * @return 数据库分页对象，不创建先的分页对象
	 */
	public abstract Page<T> list(T param, Page<T> page);

}
